教程 12:脚本报表导出 您所在的位置:网站首页 cityengine cga规则下载 教程 12:脚本报表导出

教程 12:脚本报表导出

2024-01-02 07:11| 来源: 网络整理| 查看: 265

报告变换数据资产标识符

报告规则参数资产。

## report asset identifier report("asset", asset) 缩放

在大多数情况下,您需要一个与原始资产大小相对应的范围。 您不能仅报告范围大小,必须将其除以资产大小。 您可以使用 assetInfo() 命令查询原始资产大小;例如,assetInfo(asset, "sx") 可查询在 x 轴的大小。

因此,该范围的报告命令为:

## report scale values relative to asset report("xscale", scope.sx/assetInfo(asset, "sx")) report("yscale", scope.sy/assetInfo(asset, "sy")) report("zscale", scope.sz/assetInfo(asset, "sz")) 旋转

要报告世界坐标中的旋转,您必须使用 convert() 命令在 CityEngine 中转换枢轴旋转:

## report rotation in world coords report("xrot", convert(x, pivot, world, orient, 0,0,0)) report("yrot", convert(y, pivot, world, orient, 0,0,0)) report("zrot", convert(z, pivot, world, orient, 0,0,0)) 位置

位置是最复杂的部分。 为了能够在您的后续应用程序中正确地实例化您的资产,重要的是要注意所使用资产的枢轴和位置。 在本例中,资产的枢轴位于地平面的中心,并且位于世界原点上。 请参阅下方的 Maya 屏幕截图:

在报告位置之前修改资产范围,将其缩放为一个很小的针 并以 x 和 z 作为中心。 这样,即可确保所报告的位置与 Maya 中资产的枢轴相对应。

## scale and center scope s(0.0001,'1,0.0001) center(xz)

同样,必须将该位置转换为世界坐标:

## report position in world coords report("xpos", convert(x, scope, world, pos, 0,0,0)) report("ypos", convert(y, scope, world, pos, 0,0,0)) report("zpos", convert(z, scope, world, pos, 0,0,0))

现在,您已经报告了全部的所需值。 为了确保视窗中不会显示不需要的几何,请在报表规则的末尾添加一个 NIL 命令。 最终的报表规则如下所示:

InstanceReport(asset) --> ## report instance ID report("asset", asset) ## report scale values relative to asset report("xscale", scope.sx/assetInfo(asset, "sx")) report("yscale", scope.sy/assetInfo(asset, "sy")) report("zscale", scope.sz/assetInfo(asset, "sz")) ## report rotation in world coords report("xrot", convert(x, pivot, world, orient, 0,0,0)) report("yrot", convert(y, pivot, world, orient, 0,0,0)) report("zrot", convert(z, pivot, world, orient, 0,0,0)) ## scale and center scope s(0.001,'1,0.001) center(xz) ## report position in world coords report("xpos", convert(x, scope, world, pos, 0,0,0)) report("ypos", convert(y, scope, world, pos, 0,0,0)) report("zpos", convert(z, scope, world, pos, 0,0,0)) NIL 使用报表规则

接下来,您将返回到原始的 CGA 规则文件,并使用准备好的报表规则。 在文件 instance_city_01.cga 的开头添加以下行,以导入准备好的 ID 为 instanceReporting 的报表规则文件:

import instanceReporting:"instanceReporting.cga"

将 InstanceReport 规则添加到建筑物规则的末尾。 请确保在插入命令后添加 Asset. 叶规则,以确保生产资产。

Building(asset) --> s('1,0,'1) i(asset) Asset. instanceReporting.InstanceReport(asset)

生成建筑物,并查看检查器窗口的报表窗格,该窗格应该与以下示例类似:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有